home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / complib / DSVDC.z / DSVDC
Encoding:
Text File  |  1998-10-30  |  4.1 KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDSSSSVVVVDDDDCCCC((((3333FFFF))))                                                            DDDDSSSSVVVVDDDDCCCC((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DSVDC   - DSVDC is a subroutine to reduce a double precision NxP matrix X
  10.      by orthogonal transformations U and V to diagonal form.  The diagonal
  11.      elements S(I) are the singular values of X.  The columns of U are the
  12.      corresponding left singular vectors, and the columns of V the right
  13.      singular vectors.
  14.  
  15.  
  16. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  17.       SUBROUTINE DSVDC(X,LDX,N,P,S,E,U,LDU,V,LDV,WORK,JOB,INFO)
  18.  
  19. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  20.      On Entry
  21.  
  22.      XXXX DOUBLE PRECISION(LDX,P), where LDX .GE. N.
  23.         X contains the matrix whose singular value
  24.         decomposition is to be computed.  X is
  25.         destroyed by DSVDC.
  26.  
  27.      LLLLDDDDXXXX INTEGER.
  28.         LDX is the leading dimension of the array X.
  29.  
  30.      NNNN INTEGER.
  31.         N is the number of columns of the matrix X.
  32.  
  33.      PPPP INTEGER.
  34.         P is the number of rows of the matrix X.
  35.  
  36.      LLLLDDDDUUUU INTEGER.
  37.         LDU is the leading dimension of the array U.
  38.         (See below).
  39.  
  40.      LLLLDDDDVVVV INTEGER.
  41.         LDV is the leading dimension of the array V.
  42.         (See below).
  43.  
  44.      WWWWOOOORRRRKKKK DOUBLE PRECISION(N).
  45.         WORK is a scratch array.
  46.  
  47.      JJJJOOOOBBBB INTEGER.
  48.         JOB controls the computation of the singular
  49.         vectors.  It has the decimal expansion AB
  50.         with the following meaning
  51.         A .EQ. 0    do not compute the left singular
  52.         vectors.
  53.         A .EQ. 1    return the N left singular vectors
  54.         in U.
  55.         A .GE. 2    return the first MIN(N,P) singular
  56.         vectors in U.
  57.         B .EQ. 0    do not compute the right singular
  58.         vectors.
  59.         B .EQ. 1    return the right singular vectors
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDSSSSVVVVDDDDCCCC((((3333FFFF))))                                                            DDDDSSSSVVVVDDDDCCCC((((3333FFFF))))
  71.  
  72.  
  73.  
  74.         in V.  On Return
  75.  
  76.      SSSS DOUBLE PRECISION(MM), where MM=MIN(N+1,P).
  77.         The first MIN(N,P) entries of S contain the
  78.         singular values of X arranged in descending
  79.         order of magnitude.
  80.  
  81.      EEEE DOUBLE PRECISION(P).
  82.         E ordinarily contains zeros.  However see the
  83.         discussion of INFO for exceptions.
  84.  
  85.      UUUU DOUBLE PRECISION(LDU,K), where LDU .GE. N.
  86.         If JOBA .EQ. 1, then K .EQ. N.
  87.         If JOBA .GE. 2, then K .EQ. MIN(N,P).
  88.         U contains the matrix of right singular vectors.
  89.         U is not referenced if JOBA .EQ. 0.  If N .LE. P
  90.         or if JOBA .EQ. 2, then U may be identified with X
  91.         in the subroutine call.
  92.  
  93.      VVVV DOUBLE PRECISION(LDV,P), where LDV .GE. P.
  94.         V contains the matrix of right singular vectors.
  95.         V is not referenced if JOB .EQ. 0.  If P .LE. N,
  96.         then V may be identified with X in the
  97.         subroutine call.
  98.  
  99.      IIIINNNNFFFFOOOO INTEGER.
  100.         The singular values (and their corresponding
  101.         singular vectors) S(INFO+1),S(INFO+2),...,S(M)
  102.         are correct (here M=MIN(N,P)).  Thus if
  103.         INFO .EQ. 0, all the singular values and their
  104.         vectors are correct.  In any event, the matrix
  105.         B = TRANS(U)*X*V is the bidiagonal matrix
  106.         with the elements of S on its diagonal and the
  107.         elements of E on its super-diagonal (TRANS(U)
  108.         is the transpose of U).  Thus the singular
  109.         values of X and B are the same.  LINPACK.  This version dated 03/19/79
  110.      .  G. W. Stewart, University of Maryland, Argonne National Lab.
  111.  
  112.      DDDDSSSSVVVVDDDDCCCC uses the following functions and subprograms. External DROT BLAS
  113.      DAXPY,DDOT,DSCAL,DSWAP,DNRM2,DROTG Fortran DABS,DMAX1,MAX0,MIN0,MOD,DSQRT
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.